/*
 * @Date: 2024-06-28 14:24:37
 * @Autor: 叶世超
 * @LastEditors: 叶世超 yesc163@163.com
 * @LastEditTime: 2024-07-04 18:15:42
 * @FilePath: \reslib-web\src\router\index.ts
 * @Description: 描述
 * @version: 版本
 */
import type { App } from 'vue'
import type { RouteRecordRaw } from 'vue-router'
import { createRouter, createWebHistory } from 'vue-router'
import remainingRouter from './modules/remaining'
import { Layout } from '@/utils/routerHelper'
// import * as metaApi from '@/api/meta'
// import { DICT_TYPE, getDictOptions } from '@/utils/dict'

const eqimMenu = [
  // {
  //   path: '/produce/produce/report',
  //   component: () => import('@/views/produce/report/index.vue'),
  //   meta: {
  //     mainPadding: true,
  //     title: '报告产出管理',
  //     noTagsView: true
  //   }
  // },
  {
    path: '/produce/produce/file',
    component: () => import('@/views/produce/file/index.vue'),
    name: 'file',
    meta: {
      mainPadding: true,
      title: '文件管理',
      noTagsView: true
    }
  },
  {
    path: '/customServices',
    component: () => import('@/views/customServices/index.vue'),
    name: 'CustomServices',
    meta: {
      mainPadding: true,
      title: '服务定制',
      noTagsView: true
    }
  },
  // {
  //   path: '/produce/newview',
  //   component: () => import('@/views/produce/newview/index.vue'),
  //   name: 'newview',
  //   meta: {
  //     mainPadding: true,
  //     title: '查看规则',
  //     noTagsView: true
  //   }
  // },
  // {
  //   path: '/produce/addcreate',
  //   component: () => import('@/views/produce/addcreate/index.vue'),
  //   name:'addcreate',
  //   meta: {
  //     mainPadding: true,
  //     noCache: true,
  //     hidden: true,
  //     canTo: true,
  //     title: '新增规则',
  //     noTagsView: true
  //   }
  // },
  // {
  //   path: '/produce/modifycreate',
  //   component: () => import('@/views/produce/modifycreate/index.vue'),
  //   name: 'modifycreate',
  //   meta: {
  //     mainPadding: true,
  //     title: '修改规则',
  //     noTagsView: true
  //   }
  // },
  {
    path: '/produce/addfile',
    component: () => import('@/views/produce/addfile/index.vue'),
    name: 'index',
    meta: {
      mainPadding: true,
      title: '新增文件',
      noTagsView: true
    }
  },
  // {
  //   path: '/earthquke/viewpage',
  //   component: () => import('@/views/earthquake/earthquakeServer/viewpage.vue'),
  //   name: 'viewpage',
  //   meta: {
  //     mainPadding: true,
  //     title: '新增文件',
  //     noTagsView: true
  //   }
  // },
]
// const metaMenu = getDictOptions(DICT_TYPE.META_MENU)
// console.log(metaMenu)
// const metaMenu = [
//   {
//     label: 'book',
//     value: '42'
//   },
//   {
//     label: 'journal',
//     value: '52'
//   }
// ]
// const metaMenu = [
//   {
//     dictType: 'META_MENU',
//     value: '42',
//     label: 'book',
//     colorType: '',
//     cssClass: '图书库-待编'
//   }
// ]
// const metaMenu = await metaApi.menu()
// console.log(metaMenu)
// const menuEdit: AppRouteRecordRaw = {
// const menuEdit: RouteRecordRaw = {
//   path: '/resource',
//   name: 'resource',
//   component: Layout,
//   meta: { hidden: true },
//   children: [
//   ]
// }
// // const editMenu: AppRouteRecordRaw = {
// metaMenu.forEach((res) => {
//   const editMenu: RouteRecordRaw = {
//     path: '',
//     name: '',
//     meta: {
//       title: '待编',
//       noCache: true,
//       hidden: false,
//       mainPadding: false,
//       noTagsView: false
//     },
//     component: () => import('@/views/resource/meta/index.vue')
//   }
//   // const auditMenu: AppRouteRecordRaw = {
//   const auditMenu: RouteRecordRaw = {
//     path: '',
//     name: '',
//     meta: {
//       title: '待审',
//       noCache: true,
//       hidden: false,
//       mainPadding: false,
//       noTagsView: false
//     },
//     component: () => import('@/views/resource/meta/audit.vue')
//   }
//   const code = res.code
//   const id = res.id
//   console.log(code)
//   // const editMenu: AppRouteRecordRaw = {
//   //   path: '',
//   //   name: '',
//   //   meta: {
//   //     title: '待编',
//   //     noCache: true,
//   //     hidden: false,
//   //     mainPadding: false,
//   //     noTagsView: false
//   //   },
//   //   component: () => import('@/views/resource/meta/index.vue')
//   // }
//   //editMenu.path = '/resource/meta/' + res.label + '/edit/:id'
//   editMenu.path = '/resource/meta/' + code + '/edit/' + id
//   editMenu.name = code + 'Edit'
//
//   // const auditMenu: AppRouteRecordRaw = {
//   //   path: '',
//   //   name: '',
//   //   meta: {
//   //     title: '待审',
//   //     noCache: true,
//   //     hidden: false,
//   //     mainPadding: false,
//   //     noTagsView: false
//   //   },
//   //   component: () => import('@/views/resource/meta/audit.vue')
//   // }
//   //auditMenu.path = '/resource/meta/' + res.label + '/audit/:id'
//   auditMenu.path = '/resource/meta/' + code + '/audit/' + id
//   auditMenu.name = code + 'Audit'
//
//   const releaseMenu: AppRouteRecordRaw = {
//     path: '',
//     name: '',
//     meta: {
//       title: '签发',
//       noCache: true,
//       hidden: false,
//       mainPadding: false,
//       noTagsView: false
//     },
//     component: () => import('@/views/resource/meta/release.vue')
//   }
//
//   // releaseMenu.path = '/resource/meta/' + res.label + '/release/:id'
//   releaseMenu.path = '/resource/meta/' + code + '/release/' + id
//   releaseMenu.name = code + 'Release'
//   menuEdit.children?.push(editMenu)
//   menuEdit.children?.push(auditMenu)
//   menuEdit.children?.push(releaseMenu)
// })
// const videoMenu = [
//   {
//     path: '/resource/animation/animationEdit',
//     component: () => import('@/views/video/index.vue'),
//     name: 'animationEdit',
//     meta: {
//       mainPadding: true,
//       title: '动画库-待编',
//       noTagsView: true
//     }
//   },
//   {
//     path: '/resource/animation/animationAudit',
//     component: () => import('@/views/video/audit.vue'),
//     name: 'animationAudit',
//     meta: {
//       mainPadding: true,
//       title: '动画库-待审',
//       noTagsView: true
//     }
//   },
//   {
//     path: '/resource/animation/animationRelease',
//     component: () => import('@/views/video/release.vue'),
//     name: 'animationRelease',
//     meta: {
//       mainPadding: true,
//       title: '动画库-发布',
//       noTagsView: true
//     }
//   },
//   {
//     path: '/resource/video/animationRecycle',
//     component: () => import('@/views/video/recycle.vue'),
//     name: 'animationRecycle',
//     meta: {
//       mainPadding: true,
//       title: '动画库-回收站',
//       noTagsView: true
//     }
//   },
//   {
//     path: '/resource/animation/detail',
//     component: () => import('@/views/video/detail.vue'),
//     name: 'ResourceAnimationIndexDetail',
//     meta: {
//       mainPadding: true,
//       noCache: true,
//       canTo: true,
//       title: '视频详情',
//     }
//   },
//   {
//     path: '/resource/video/videoEdit',
//     component: () => import('@/views/video/index.vue'),
//     name: 'videoEdit',
//     meta: {
//       mainPadding: true,
//       title: '视频库-待编',
//       noTagsView: true
//     }
//   },
//   {
//     path: '/resource/video/videoAudit',
//     component: () => import('@/views/video/audit.vue'),
//     name: 'videoAudit',
//     meta: {
//       mainPadding: true,
//       title: '视频库-待审',
//       noTagsView: true
//     }
//   },
//   {
//     path: '/resource/video/videoRelease',
//     component: () => import('@/views/video/release.vue'),
//     name: 'videoRelease',
//     meta: {
//       mainPadding: true,
//       title: '视频库-发布',
//       noTagsView: true
//     }
//   },
//   {
//     path: '/resource/video/recycle',
//     component: () => import('@/views/video/recycle.vue'),
//     name: 'videoRecycle',
//     meta: {
//       mainPadding: true,
//       title: '视频库-回收站',
//       noTagsView: true
//     }
//   },
//   {
//     path: '/resource/video/detail',
//     component: () => import('@/views/video/detail.vue'),
//     name: 'ResourceVideoIndexDetail',
//     meta: {
//       mainPadding: true,
//       noCache: true,
//       canTo: true,
//       title: '视频详情',
//       activeMenu: '/resource/video/detail'
//     }
//   },
//   {
//     path: '/resource/audio/audioEdit',
//     component: () => import('@/views/audio/index.vue'),
//     name: 'audioEdit',
//     meta: {
//       mainPadding: true,
//       noCache: true,
//       canTo: true,
//       title: '音频库-待编',
//       activeMenu: '/resource/audio/audioEdit'
//     }
//   },
//   {
//     path: '/resource/audio/audioAudit',
//     component: () => import('@/views/audio/audit.vue'),
//     name: 'audioAudit',
//     meta: {
//       mainPadding: true,
//       noCache: true,
//       canTo: true,
//       title: '音频库-待审',
//       activeMenu: '/resource/audio/audioAudit'
//     }
//   },
//   {
//     path: '/resource/audio/audioRelease',
//     component: () => import('@/views/audio/release.vue'),
//     name: 'audioRelease',
//     meta: {
//       mainPadding: true,
//       noCache: true,
//       canTo: true,
//       title: '音频库-发布',
//       activeMenu: '/resource/audio/audioRelease'
//     }
//   },
//   {
//     path: '/resource/picture/pictureEdit',
//     component: () => import('@/views/picture/index.vue'),
//     name: 'pictureEdit',
//     meta: {
//       mainPadding: true,
//       noCache: true,
//       canTo: true,
//       title: '图片库-待编',
//       activeMenu: '/resource/picture/pictureEdit'
//     }
//   },
//   {
//     path: '/resource/picture/pictureAudit',
//     component: () => import('@/views/picture/audit.vue'),
//     name: 'pictureAudit',
//     meta: {
//       mainPadding: true,
//       noCache: true,
//       canTo: true,
//       title: '图片库-待审',
//       activeMenu: '/resource/picture/pictureAudit'
//     }
//   },
//   {
//     path: '/resource/picture/pictureRelease',
//     component: () => import('@/views/picture/release.vue'),
//     name: 'pictureRelease',
//     meta: {
//       mainPadding: true,
//       noCache: true,
//       canTo: true,
//       title: '图片库-发布',
//       activeMenu: '/resource/picture/pictureRelease'
//     }
//   },
//   {
//     path: '/resource/picture/recycle',
//     component: () => import('@/views/picture/recycle.vue'),
//     name: 'pictureRecycle',
//     meta: {
//       mainPadding: true,
//       noCache: true,
//       canTo: true,
//       title: '图片库-回收站',
//       activeMenu: '/resource/picture/recycle'
//     }
//   },
//   {
//     path: '/resource/meta/file',
//     component: () => import('@/views/resource/meta/fileList.vue'),
//     name: 'fileList',
//     meta: {
//       mainPadding: true,
//       noCache: true,
//       canTo: true,
//       title: '资源列表',
//       activeMenu: '/resource/meta'
//     }
//   },
//   {
//     path: '/resource/recycle/index',
//     component: () => import('@/views/resource/meta/recycle.vue'),
//     name: 'metaRecycle',
//     meta: {
//       mainPadding: true,
//       noCache: true,
//       canTo: true,
//       title: '回收站',
//       activeMenu: '/resource/meta'
//     }
//   },
//   {
//     path: '/resource/meta/version',
//     component: () => import('@/views/resource/meta/version.vue'),
//     name: 'metaVersion',
//     meta: {
//       mainPadding: true,
//       noCache: true,
//       canTo: true,
//       title: '版本管理',
//       activeMenu: '/resource/meta'
//     }
//   },
//   {
//     path: '/resource/meta/file',
//     component: () => import('@/views/resource/meta/fileList.vue'),
//     name: 'fileList',
//     meta: {
//       mainPadding: true,
//       noCache: true,
//       canTo: true,
//       title: '资源列表',
//       activeMenu: '/resource/meta'
//     }
//   },
//   {
//     path: '/resource/recycle/index',
//     component: () => import('@/views/resource/meta/recycle.vue'),
//     name: 'metaRecycle',
//     meta: {
//       mainPadding: true,
//       noCache: true,
//       canTo: true,
//       title: '回收站',
//       activeMenu: '/resource/meta'
//     }
//   },
//   {
//     path: '/resource/debris/index',
//     component: () => import('@/views/debris/index.vue'),
//     name: 'debris',
//     meta: {
//       mainPadding: true,
//       noCache: true,
//       canTo: true,
//       title: '碎片库',
//       activeMenu: '/resource/meta'
//     }
//   }
//   ]

const menuEdit: RouteRecordRaw = {
  path: '/resource',
  name: 'resource',
  component: Layout,
  meta: { hidden: true },
  children: [
  ]
}
eqimMenu.forEach((res) => {
  menuEdit.children?.push(res)
})

remainingRouter.push(menuEdit)
// console.log(menuEdit)

// 创建路由实例
const router = createRouter({
  history: createWebHistory(), // createWebHashHistory URL带#，createWebHistory URL不带#
  strict: true,
  routes: remainingRouter as RouteRecordRaw[],
  scrollBehavior: () => ({ left: 0, top: 0 })
})

export const resetRouter = (): void => {
  const resetWhiteNameList = ['Redirect', 'Login', 'NoFind', 'Root']
  router.getRoutes().forEach((route) => {
    const { name } = route
    if (name && !resetWhiteNameList.includes(name as string)) {
      router.hasRoute(name) && router.removeRoute(name)
    }
  })
}

export const setupRouter = (app: App<Element>) => {
  app.use(router)
}
// if (menuEdit.children?.length) {
//   // router.addRoute({ path: '', component: () => import('@/views/resource/meta/release.vue') })
//   // console.log(editMenu)
//   // console.log(auditMenu)
//   router.addRoute(menuEdit)
//   // router.addRoute(auditMenu)
// }
// console.log(editMenu)
// console.log(auditMenu)
// router.addRoute(editMenu)
// router.addRoute(auditMenu)
// router.addRoute({ path: '/resource/meta/book/audit/:idasdf', component: () => import('@/views/resource/meta/release.vue') })

export default router
